#include <stdio.h>
#include <unistd.h>    // 包含 fork() 的声明
#include <sys/types.h> // 包含 pid_t 类型的定义
#include <stdlib.h>

int main()
{
    volatile int a = 100;
    int b = 100;

    pid_t pd = fork();
    if (pd > 0) // 父进程
    {
        a++;
        b++;
        printf("a = %d, b = %d\n", a, b);
        printf("a_add = %p, b_add = %p\n", &a, &b);
        printf("pid = %d, ppid = %d\n", getpid(), pd);
    }
    else if (pd == 0) // 子进程
    {
        sleep(1);
        printf("a = %d, b = %d\n", a, b);
        printf("a_add = %p, b_add = %p\n", &a, &b);
        printf("pid = %d, ppid = %d\n", getpid(), getppid());
    }
    else
    {
        perror("ERROR");
        exit(0);
    }
}
